package com.alks.function.service.chengKong;

import com.alks.entity.data.entity.PcLotHead;
import com.alks.entity.data.response.ResponseInfo;
import com.alks.function.data.request.chengKong.*;

import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import java.util.Map;

public interface PcLotHeadService {

    ResponseInfo getStyleDetails(PcLotHeadRequest request);

    ResponseInfo getStyleSizeData(LotNoRequest request);

    ResponseInfo getPoNumberDetails(LotNoRequest request);

    ResponseInfo getPoNumberSizeData(Map<String, String> map);

    ResponseInfo getStyleUsageDetails(LotNoRequest request);

    ResponseInfo getStyleOfLastNoDetails(String style);

    ResponseInfo getStyleBOMDetails(PcLotHeadRequest2 request);

    ResponseInfo addStyle(PcLotHeadRequest request);

    ResponseInfo getSoleDetails(LotNoRequest request);

    ResponseInfo getStitchDetails(LotNoRequest request);

    ResponseInfo getLastDetails(LotNoRequest request);

    ResponseInfo getSoleDetailsAdd(LotNoRequest request);

    ResponseInfo getStitchDetailsAdd(LotNoRequest request);

    ResponseInfo getLastDetailsAdd(LotNoRequest request);

    ResponseInfo getLotNoCopy(LotNo2Request request);

    ResponseInfo getMiddleCode(List<LotNoRequest> requests);

    ResponseInfo getLotNoCheck(List<LotNoRequest> request, Integer choose);

    ResponseInfo getStyleDetailUpdate(StyleDetailUpdateRequest request);

    ResponseInfo getPoNumberDetailAdd(PoNumberAddRequest request);

    ResponseInfo getPoNumberDetailDel(PoNumberDelRequest request);

    ResponseInfo getUsageGenerate(List<LotNo2Request> requests);

    ResponseInfo getStyleSizeDataUpdate(List<PcLotDetailUpdateRequest> request);

    ResponseInfo getCondition();

    ResponseInfo getStyleCondition(LotNoRequest request);

    ResponseInfo addLotNo(PcLotHeadRequest request);

    ResponseInfo getLotNoCheckUp(List<LotNoCheckRequest> request, Integer choose);

    ResponseInfo getStyleDelete(LotNoRequest request);

    void ExportInstructionSheet(String lotNo, int flag, HttpServletResponse response);

    ResponseInfo getStyleSizeData2(LotNoRequest request);

    void ExportSizeDetail(PcLotHeadRequest request, HttpServletResponse response);

    /**
     * 根据指令进行批量修改(不能置NULL版)
     * @param request 待修改数据
     */
    void headListUpNotNull(List<PcLotHead> request);

    /**
     * 指令存在检核
     * @param lotNoList 指令号列表
     */
    void lotCheck(List<String> lotNoList);

    /**
     * 季节回显
     * @param season 模糊季节
     * @return 季节列表
     */
    List<String> seasonBack(String season);

    ResponseInfo RefreshTheBody(LotNoRequest request);

    void downloadStyleData(HttpServletResponse response, PcLotHeadRequest request) throws IOException;

    void exportLotNo(PcLotHeadRequest request, HttpServletResponse response);
}
